package com.example.bookstore.config

import com.example.bookstore.entity.*
import com.example.bookstore.service.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.context.event.ApplicationStartedEvent
import org.springframework.context.ApplicationListener
import org.springframework.context.annotation.Configuration
import org.springframework.security.crypto.password.PasswordEncoder
import org.springframework.transaction.annotation.Transactional

/**
 * Created by IntelliJ IDEA.
 * User: lvshe
 * Date: 2019/8/8
 * Time: 0:16
 */
//@Configuration
class InitBookData : ApplicationListener<ApplicationStartedEvent> {


    @Autowired
    private lateinit var bookService: BookService
    @Autowired
    private lateinit var userService: UserService
    @Autowired
    private lateinit var pressService: PressService
    @Autowired
    private lateinit var bookCategoryService: BookCategoryService
    @Autowired
    private lateinit var carousalService: CarousalService
    @Autowired
    private lateinit var topRecommendedBookService: TopRecommendedBookService
    @Autowired
    private lateinit var passwordEncoder: PasswordEncoder

    @Transactional
    override fun onApplicationEvent(event: ApplicationStartedEvent) {
        userService.save(UserEntity("nickname", "123", passwordEncoder.encode("123")))

        val press1 = PressEntity("北京斯坦威图书有限责任公司", "http://img51.ddimg.cn/9002710042501111.jpg", "北京斯坦威图书有限责任公司肇始于2001年成立的北京斯坦威管理咨询有限公司，除传统的经管、财会图书的策划出版优势外，主要的策划出版领域为人文学术、心理学专业及大众读物及高品位的时尚艺术类图书。我们的图书80%以上为各语种的引进版权作品；专业化、国际化与时尚化是我们不懈的努力目标。理性、激情、想像力是我们不变的工作风格，也是我们策划出版的旨趣所在；为读者传递“生生不息的激情与想像，永远向前的动力和理念”是我们永远的追求。")
        val press2 = PressEntity("中信出版集团股份有限公司", "http://img50.ddimg.cn/9003230030728810.jpg", "【中信出版】致力于以优质内容和创意吸引客户，建立以客户为中心的价值出版和O2O服务体系，垂直整合商业财经、文化、生活、少儿、教育、娱乐等六个核心领域，通过全版权运营建立新型投资模式，成为中国具有一定规模和影响力的综合文化服务提供商。出版的价值，不只在于书本，更在于服务，服务读者，服务知识，服务我们的终身学习。")
        val press3 = PressEntity("读客文化股份有限公司", "http://img59.ddimg.cn/9003250028492349.jpg", "读客文化，有着广泛品牌影响力、深受读者认可的阅读品牌。以“激发个人成长”为使命，出版的书籍坚持从精神成长、知识结构、生存技能三个方面满足读者成长需求。")
        val press4 = PressEntity("中南博集天卷文化传媒有限公司", "http://img52.ddimg.cn/9002770020804232.jpg", "")
        val press5 = PressEntity("竹石文化图书", "http://img54.ddimg.cn/9002950012863014.jpg", "")
        val press7 = PressEntity("人民邮电出版社", "http://img51.ddimg.cn/9003000057455991.jpg", "人民邮电出版社是中华人民共和国工业和信息化部主管的一家较大规模的出版社，成立于1953年10月1日，以通信、电子、经济、管理、交通、计算机、少儿等领域的图书和期刊出版为主。其中，计算机零售图书市场份额据统计位居第一")
        val press8 = PressEntity("天津湛庐图书有限公司", "http://img50.ddimg.cn/9003290043748580.jpg", "天津湛庐文化传播有限公司成立于2005年，秉承“十年磨一剑”的专业精神，目前已经发展成为国内最专业的商业图书出版商以及阅读解决方案的提供商。在民营商业出版机构中位居翘楚，在全国商业图书出版品牌中位居前列。湛庐文化坚持“知识让世界更简单”的出版理念，为读者提供理性、专业、敏锐、前沿、多维的阅读产品。")
        val press9 = PressEntity("北京凤凰联动图书发行有限公司", "http://img52.ddimg.cn/9003280024564542.png", "北京凤凰联动文化传媒有限公司，目前辟有生活健康、社科文艺、外国文学、儿童文学和青春网络等图书产品生产线，拥有一支成熟的图书策划和营销专业队伍。公司秉承“植根中国本土 张大国际视域 体察思潮流变 创造完美产品”的理念，以无穷创意为经，以澎湃激情为纬，以与天下人共享阅读为乐，是一家实力雄厚，有内容创新能力、市场竞争力和文化影响力的一流出版发行机构。")


        var book1 = BookEntity("出众，从改变习惯开始：迈向卓越人生的七大习惯法则", "(德)马克·列克劳", 29.00, 48.00, "http://img3m0.ddimg.cn/57/29/27878160-1_u_5.jpg", "风靡欧美的深度提升课程，长踞各大畅销书榜单N0.1！行动是改变命运的根本途径，你要么出众，要么出局！好的习惯就是一笔巨大的财富，比尔·盖茨深刻受益的成功理念！", "http://img59.ddimg.cn/99999990032942179.jpg")
        var book2 = BookEntity("产品思维：从新手到资深产品人", "刘飞", 29.90, 59.80, "http://img3m2.ddimg.cn/97/8/27871072-1_u_8.jpg", "产品思维，是每一个产品人的底层能力！从新手到资深产品人 知乎224900人关注、446579次赞同、“产品经理”话题优秀回答者写给产品人的进阶指南！", "http://img56.ddimg.cn/99999990030290356.jpg")
        var book3 = BookEntity("快乐的力量：大师经典绘本", "[英]昆廷·布莱克（Quentin Blake）", 97.80, 195.60, "http://img3m6.ddimg.cn/17/28/27893366-1_u_5.jpg", "用快乐的天性，作人生的铠甲！创造英国童书历史的快乐大师昆廷，包揽国际安徒生奖、凯特?格林纳威奖、儿童文学桂冠作家3项大奖。4本大师大奖经典作品，让孩子收获乐观、爱、想象力与梦想！", "http://img57.ddimg.cn/99999990046681227.jpg")
        var book4 = BookEntity("从你的全世界路过", "张嘉佳 ", 22.50, 45.00, "http://img3m4.ddimg.cn/7/30/27889594-1_u_3.jpg", "华语小说销量奇迹，让所有人心动的故事。每一分钟，都有人在故事里看到自己。随书附赠全世界精美“护照册”，五款随机发送。", "http://img56.ddimg.cn/99999990035649856.jpg")
        var book5 = BookEntity(" 共情营销：手把手教你快速实现低成本爆发式销售增长", "(美)克莱尔.布鲁克斯著;肖文键译 ", 22.50, 45.00, "http://img3m2.ddimg.cn/48/6/27884982-1_u_2.jpg", "好营销就是使推销成为多余！美国著名战略咨询公司ModelPeople总裁、杜伦大学MBA营销课程设计者克莱尔·布鲁克斯近20年实践深度总结，手把手教你快速实现低成本爆发式销售增长！", "http://img54.ddimg.cn/99999990040197274.jpg")
        var book6 = BookEntity(" Java从入门到项目实战（全程视频版）", "李兴华", 49.50, 99.80, "http://img3m4.ddimg.cn/27/16/27864864-1_u_3.jpg", "Java入门全程视频教程，著名IT培训讲师15年Java培训经验总结，65小时同步视频讲解，赠送：Java工程师学习路线+职业规划+自我修养+146集Python+69集Oracle五大视频课程 ", "http://img55.ddimg.cn/99999990024663185.jpg")
        var book7 = BookEntity(" 和秋叶一起学Word Excel PPT", "李兴华", 49.50, 99.80, "http://img3m7.ddimg.cn/19/14/25167007-1_u_4.jpg", "让秋叶PPT带你学办公软件 学PowerPoint幻灯片学excel数据处理与分析学word文档制作 现代商务办公从新手到高手教程书籍 赠数百套模板和文件 还有技术分享和秋叶原创作品等资源 获取见书签  ", "http://img56.ddimg.cn/99999990003934186.jpg")
        var book8 = BookEntity(" 园丁与木匠", "(美) 艾莉森·高普尼克", 48.93, 69.90, "http://img3m5.ddimg.cn/58/20/27904495-1_u_3.jpg", "引爆教育界！头部教育大V争相推荐！ 加州大学30年实证研究揭示，孩子都是天生学习家； 教孩子不如懂孩子，彻底打破攀比式育儿困境  ", "http://img56.ddimg.cn/99999990051158286.jpg")
        var book9 = BookEntity(" 地球编年史（全七册）", "李兴华", 179.00, 358.00, "http://img3m0.ddimg.cn/31/23/27891400-1_u_3.jpg", "人类到底来自何处？为人类重新立史，颠覆所有史观 解答太阳系、地球及人类过去与未来的所有谜团！  ", "http://img50.ddimg.cn/99999990048143400.jpg")




        book1.press = pressService.save(press1)
        book2.press = pressService.save(press2)
        book3.press = pressService.save(press3)
        book4.press = pressService.save(press4)
        book5.press = pressService.save(press5)
        book7.press = pressService.save(press7)
        book8.press = pressService.save(press8)
        book9.press = pressService.save(press9)


        book1 = bookService.save(book1)
        book2 = bookService.save(book2)
        book3 = bookService.save(book3)
        book4 = bookService.save(book4)
        book5 = bookService.save(book5)
        book6 = bookService.save(book6)
        book7 = bookService.save(book7)
        book8 = bookService.save(book8)
        book9 = bookService.save(book9)


        val bookCategory1 = BookCategoryEntity("出版", 1)
        bookCategory1.books = hashSetOf(book1, book2, book3, book4, book5, book6, book7, book8, book9)
        val bookCategory2 = BookCategoryEntity("技能", 2)
        bookCategory2.books = hashSetOf(book5, book6, book7)
        val bookCategory3 = BookCategoryEntity("科普", 3)
        bookCategory3.books = hashSetOf(book9)
        val bookCategory4 = BookCategoryEntity("心理", 4)
        bookCategory4.books = hashSetOf(book3)
        val bookCategory5 = BookCategoryEntity("教育", 5)
        bookCategory5.books = hashSetOf(book3, book8)
        val bookCategory6 = BookCategoryEntity("小说", 6)
        bookCategory6.books = hashSetOf(book4)

        bookCategoryService.save(bookCategory1)
        bookCategoryService.save(bookCategory2)
        bookCategoryService.save(bookCategory3)
        bookCategoryService.save(bookCategory4)
        bookCategoryService.save(bookCategory5)
        bookCategoryService.save(bookCategory6)


        val books = bookService.getAllPageable(0, 6)
        carousalService.save(CarousalEntity("轮番图1", "https://img12.360buyimg.com/da/jfs/t1/42973/17/11310/143677/5d4b7b13Ec60462ec/ae209f16190b656a.jpg!q80.webp", 0, books[0]))
        carousalService.save(CarousalEntity("轮番图2", "https://img14.360buyimg.com/da/jfs/t1/47328/10/7213/88602/5d4e2af3E85ce5ace/d36f664b875c5915.jpg!q95.webp", 1, books[1]))
        carousalService.save(CarousalEntity("轮番图3", "https://img20.360buyimg.com/da/jfs/t1/64160/15/6127/73973/5d42aba3E65a961fb/049ee2f5d668ce5f.jpg!q95.webp", 2, books[2]))
        carousalService.save(CarousalEntity("轮番图4", "https://img14.360buyimg.com/da/jfs/t1/73366/30/7042/99549/5d50be1bEa2b0701e/794582d9b967a707.jpg!q95.webp", 3, books[3]))
        carousalService.save(CarousalEntity("轮番图5", "https://img10.360buyimg.com/da/jfs/t1/70084/26/7059/177169/5d5103b9E2df5fcf5/fd640651501a7bfc.jpg!q95.webp", 4, books[4]))
        carousalService.save(CarousalEntity("轮番图6", "https://img10.360buyimg.com/da/jfs/t1/72773/34/6643/105256/5d4b7463Ee507d3b6/16e31d2fbf477b9c.jpg!q95.webp", 5, books[5]))

        topRecommendedBookService.save(TopRecommendedBookEntity("推荐1", 0, books[0]))
        topRecommendedBookService.save(TopRecommendedBookEntity("推荐2", 0, books[1]))
        topRecommendedBookService.save(TopRecommendedBookEntity("推荐3", 0, books[2]))
        topRecommendedBookService.save(TopRecommendedBookEntity("推荐4", 0, books[3]))
        topRecommendedBookService.save(TopRecommendedBookEntity("推荐5", 0, books[4]))
        topRecommendedBookService.save(TopRecommendedBookEntity("推荐6", 0, books[5]))
    }
}